--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 35dc77152828cc537f3a9484617ebc6df32b519a
Parents : c369c6f
Author : Mark Qvist <mark@unsigned.io>
Date : 2024-02-29T20:12:54+01:00
Don't keep links alive after sync
Changes
2 files changed, 14 insertions(+), 8 deletions(-)
Diff
diff --git a/LXMF/LXMPeer.py b/LXMF/LXMPeer.py
index 611a874..17c0344 100644
--- a/LXMF/LXMPeer.py
+++ b/LXMF/LXMPeer.py
@@ -224,6 +224,10 @@ class LXMPeer:
self.state = LXMPeer.RESOURCE_TRANSFERRING
else:
RNS.log("Peer "+RNS.prettyhexrep(self.destination_hash)+" did not request any of the available messages, sync completed", RNS.LOG_DEBUG)
+ if self.link != None:
+ self.link.teardown()
+
+ self.link = None
self.state = LXMPeer.IDLE
except Exception as e:
@@ -236,25 +240,28 @@ class LXMPeer:
self.link = None
self.state = LXMPeer.IDLE
-
def resource_concluded(self, resource):
if resource.status == RNS.Resource.COMPLETE:
for transient_id in resource.transferred_messages:
message = self.unhandled_messages.pop(transient_id)
self.handled_messages[transient_id] = message
+
+ if self.link != None:
+ self.link.teardown()
+
+ self.link = None
self.state = LXMPeer.IDLE
- self.link.teardown()
+
RNS.log("Sync to peer "+RNS.prettyhexrep(self.destination_hash)+" completed", RNS.LOG_DEBUG)
self.alive = True
self.last_heard = time.time()
+
else:
RNS.log("Resource transfer for LXMF peer sync failed to "+str(self.destination), RNS.LOG_DEBUG)
if self.link != None:
self.link.teardown()
- else:
- self.state = LXMPeer.IDLE
-
+ self.state = LXMPeer.IDLE
def link_established(self, link):
self.link.identify(self.router.identity)
@@ -272,8 +279,6 @@ class LXMPeer:
def handle_message(self, transient_id):
if not transient_id in self.handled_messages and not transient_id in self.unhandled_messages:
- # TODO: Remove at some point
- RNS.log("The message "+RNS.prettyhexrep(transient_id)+" was added to distribution queue for "+RNS.prettyhexrep(self.destination_hash), RNS.LOG_EXTREME)
self.unhandled_messages[transient_id] = self.router.propagation_entries[transient_id]
def __str__(self):
diff --git a/LXMF/LXMRouter.py b/LXMF/LXMRouter.py
index 06e9abf..e9a4836 100644
--- a/LXMF/LXMRouter.py
+++ b/LXMF/LXMRouter.py
@@ -653,7 +653,8 @@ class LXMRouter:
job_thread.start()
def __request_messages_path_job(self):
- while not RNS.Transport.has_path(self.wants_download_on_path_available_from) and time.time() < self.wants_download_on_path_available_timeout:
+ path_timeout = self.wants_download_on_path_available_timeout
+ while not RNS.Transport.has_path(self.wants_download_on_path_available_from) and time.time() < path_timeout:
time.sleep(0.1)
if RNS.Transport.has_path(self.wants_download_on_path_available_from):
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────